/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package AccesoDatos.DAOLocal;

import AccesoDatos.IDAO.IDAOUsuario;
import ObjetoDominio.Servidor;
import ObjetoDominio.Usuario;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;

/**
 *Clase que realiza las acciones sobre los datos de usuario por via socket
 * @author guzmle
 */
public class DAOUsuarioLocal implements IDAOUsuario{

    Servidor _servidor;
    
    public DAOUsuarioLocal(Servidor servidor) {
        _servidor = servidor;
    }

    /**
     * Metodo que valida las credenciales del usuario dentro del servidor
     * por via socket
     * @param usuario datos del usuario para validar
     * @return 
     */
    @Override
    public boolean ValidarUsuario(Usuario usuario) {
        try {
            
            SAXBuilder builder = new SAXBuilder();
            Document result = builder.build(new FileInputStream("Usuarios.xml"));  
            Element raiz = result.getRootElement(); 
            List<Element> hijosRaiz = raiz.getChildren("usuario"); 
            for (Element elemento : hijosRaiz) {
                String nombre = elemento.getChild("nombre").getValue();
                String password = elemento.getChild("password").getValue();
                if((nombre.equalsIgnoreCase(usuario.getNombre()))&&
                        (password.equals(usuario.getPassword()))){
                    return true;
                }
                
            }
            
            return false;

        } catch (Exception e) {  
            System.out.println(e.getMessage());
            return false;
        }
    }

    @Override
    public List<Usuario> ObtenerUsuarios() {
        List<Usuario> retorno = new ArrayList<Usuario>();
        try{
            SAXBuilder builder = new SAXBuilder();
            Document result = builder.build(new FileInputStream("Usuarios.xml"));  
            Element raiz = result.getRootElement(); 
            List<Element> hijosRaiz = raiz.getChildren("usuario"); 
            for (Element elemento : hijosRaiz) {
                Usuario usuario = new Usuario();
                usuario.setNombre(elemento.getChild("nombre").getValue());
                usuario.setPassword(elemento.getChild("password").getValue());  
                retorno.add(usuario);
            }
            return retorno;
        } catch (Exception e) {  
            System.out.println(e.getMessage());
            return retorno;
        }
    }

    @Override
    public void EnviarValidacionUsuario(boolean respuesta) {
        throw new UnsupportedOperationException("Not supported yet.");
    }
    
    
}
